The present invention relates to sharing information among computers of different types. In particular, this invention relates to a system for remotely observing and optionally controlling information, including text and graphical images, displayed on a computer from among both homogeneous and heterogeneous computers coupled to each other in a network environment or via other transport media such as magnetic disks. Such observation and control may be in real-time over a network or may be deferred or delayed. In the context of the present invention, a computer refers to personal computers such as the Macintosh, manufactured by Apple Computer Inc., and the PC-AT and PS/2, manufactured by the International Business Machines Corporation. Such control and observation of information in a network which includes workstations such as the Sun-3 and Sun-4 families of workstations manufactured by Sun Microsystems, Incorporated, is also possible utilizing the present invention where such workstations have common libraries of graphics routines in their windowing systems.
The technology of computer screen sharing is widely known and used among computers of the same or compatible design ("homogeneous computers"). The hardware and program configuration of a computer, particularly a personal computer, is also currently often referred to as a "platform". Substantial difficulty arises when users of different computer platforms ("heterogeneous computers") wish to share information presented on their respectivescreens. A substantial part of the difficulty in sharing information among heterogeneous computers is attributable to differences in drawing commands of the windowing systems used by different computer platforms to present information to the user on the screen of his particular computer system.
Most computer window systems, including Macintosh, MS-Windows and the X-window system, are event of message driven. Graphics operations are often the most complex part of any window system simply because so many different effects and variations are required to satisfy a wide range of applications. Therefore, window systems incorporate a library of graphics routines designed specifically for the particular window system. The library graphics routines process complex graphic operations for presentation on the monitor screen of the computer. For example, in a Macintosh, the graphics library "QuickDraw", which is part of the Macintosh Operating System (MacOS), produces images on the screen thereof or off-screen. QuickDraw may also be used by a host computer to produce images on other Macintosh computers or on a homogeneous network of Macintosh or Macintosh-compatible computers. Similarly, in a PC-AT or other compatible computers, the MS-Windows program manufactured and marketed by Microsoft, Inc. provides analogous screen drawing routines via a Graphics Device Interface (GDI) library which is used for imaging all complex graphic operations either on or off screen. Similarly, GDI may be used by a host computer to produce images on other networked PC-AT computers quickly and precisely because both recording and playback of graphic images are performed on the same platform. However, controlling screen images in a heterogeneous computer environment, either deferred or dynamically (i.e. later in time on another computer or in real-time on a network, respectively) requires further processing.
In the prior art, U.S. Pat. No. 4,823,108 describes a method for displaying information in overlapping windows on a video display of a computer controlled video display system independent of the operating system of the computer. The method of this invention enables computer program output display data to be written within windows on the video display without substantial modification of the application program by writing such data to a pseudo screen buffer for temporary storage. The contents of the pseudo screen buffer are then compared with the contents of a previous image buffer at selected, timer-controlled intervals. At memory locations where the data differs, the differing data are written into the previous image buffer. As display data is thereby identified and periodically updated, it is displayed in selected windows. While the disclosed invention describes an application program display output independent windowing environment, the disclosure does not teach screen sharing of graphics displays among heterogeneous computers and is silent as to screen image sharing among networked heterogeneous computers.
Also in the prior art, U.S. Pat. No. 4,538,993 provides a classroom computer network which may comprise heterogeneous computers. However, since the primary station receives only video and audio signals which are controlled via either an analog or digital switch, no interactive control of remote secondary stations display is available to either the primary or secondary station users.
Further in the prior art is U.S. Pat. No. 4,622,545 in which methods and means are described for comparing existing and new regions to be displayed, one scan line at a time, and region operators are provided to specify precedence between the existing and new regions. Employing an inversion point imaging technique, new regions are appropriately clipped so that only required portions of a region are actually displayed to achieve desired graphic representations. Again, however, there is not teaching of interactive use and control of a second screen image from a first homogeneous or heterogeneous computer, whether connected directly or via a network.
The usefulness of remotely sharing information among computers on which such information is presented as images on monitor screens is boundless. For example, an obvious instructional aid, such systems can be used in multi-classroom teaching and multi-site industrial training environments. In addition, systems for sharing screen-imaged information are also useful in communications networks. While presently available products utilize screen sharing among homogeneous computers and also provide limited text screen sharing among heterogeneous computers, the technology for computer screen sharing of graphics data and images is limited as indicated by the prior art described avove. Therefore, it is both useful and desireable to provide a system for observing and optionally controlling information, including text and graphical images, displayed on a computer from among both homogeneous and heterogeneous computers coupled to each other in a network environment or statically via other transport media such magnetic disks. It is particularly desireable to provide such a system in which no modification of the graphics library interfaces or application programs being run is required.